/*
 * Filename:    IntegrityBlackDao.java
 * Copyright:   2014 中国平安保险（集团）股份有限公司 版权所有
 * Company:     平安科技养老险及健康险系统开发部
 * Create at:   2014年10月29日
 */
package com.paic.mhis.hcpms.trust.intergration.dao;

import java.util.List;
import java.util.Map;

import com.paic.mhis.hcpms.trust.dto.BlackParamterCondtion;
import com.paic.mhis.hcpms.trust.dto.BlackPatientBaseInfoDTO;
import com.paic.mhis.hcpms.trust.dto.BlackResultAliasDTO;
import com.paic.mhis.hcpms.trust.dto.IntegrityAttentionIllegalDTO;
import com.paic.mhis.hcpms.trust.dto.IntegrityAttentionLevelDTO;
import com.paic.mhis.hcpms.trust.dto.IntegrityBlackDTO;
import com.paic.mhis.hcpms.trust.dto.IntegrityBlackOpinionDTO;

public interface IntegrityBlackDao {

	/**
	 * 更新审核意见
	 * 
	 * @param bean
	 */
	public void updateAuditOpinion(IntegrityBlackOpinionDTO bean);

	/*
	 * 根据意见审核过的参保人id查询他的审核意见
	 */
	public IntegrityBlackOpinionDTO queryAuditOpinion(String blackId);

	/**
	 * 保存审核意见
	 * 
	 * @param bean
	 */
	public void insertIntegrityBlackOpinionBean(IntegrityBlackOpinionDTO bean);

	public IntegrityBlackDTO getIntegrityBlackDTOById(String blackId);

	/**
	 * 查询所有的违规情节
	 * 
	 * @return
	 */
	public List<IntegrityAttentionIllegalDTO> queryAllIllegalInfo(Map<String, Object> map);

	/**
	 * 查询所有的关注级别
	 * 
	 * @return
	 */
	public List<IntegrityAttentionLevelDTO> queryAllAttentionLevels(Map<String, Object> map);

	/**
	 * 查询参保人信息的总记录数
	 * 
	 * @param bean
	 * @return
	 */
	public long queryBlackPaientBaseInfoCount(BlackParamterCondtion bean);

	/**
	 * 查询参保人信息
	 * 
	 * @param bean
	 * @return
	 */
	public List<BlackPatientBaseInfoDTO> queryBlackPatientBaseInfoDTO(BlackParamterCondtion bean);

	/**
	 * 更新黑名单信息
	 * 
	 * @param bean
	 */
	public void updateIntegrityBlackPerson(IntegrityBlackDTO bean);

	/**
	 * 保存对象
	 * 
	 * @param bean
	 */
	public void insertIntegrityBlackPerson(IntegrityBlackDTO bean);

	/**
	 * 根据参数对象查询结果
	 * 
	 * @param paramter
	 * @return
	 */
	public List<IntegrityBlackDTO> queryIntegrityBlackPerson(BlackParamterCondtion paramter);

	/**
	 * 查询总记录数
	 * 
	 * @param paramter
	 * @return
	 */
	public long queryIntegrityBlackCount(BlackParamterCondtion paramter);

	/**
	 * 根据社保号查询用户信息
	 * 
	 * @param map
	 * @return
	 */
	public IntegrityBlackDTO getIntegrityBlackDTOBySocaitionNum(Map<String, Object> map);

	/**
	 * 加载所有的黑名单信息
	 * 
	 * @return
	 */
	public List<IntegrityBlackDTO> loadAllIntegrityBlackPerson(BlackParamterCondtion parameter);

	public boolean checkBlackPaientBaseInfo(BlackParamterCondtion parameter);

	/**
	 * 验证参保人诚信管理上载 Excel中的“关注级别”、“关注时限”、“违规情节” 填写的是否正确
	 * 
	 * @return
	 */
	public IntegrityBlackDTO queryattentionMidIdCilck(Map<String, Object> map);

	/**
	 * 验证参保人诚信管理上载 Excel中的“关注级别”、“关注时限”、“违规情节” 填写的是否正确
	 * 
	 * @param map
	 * @return
	 */
	public List<IntegrityBlackDTO> queryattentionMidIdCilckList(Map<String, Object> map);

	/**
	 * 查询,姓名+证件类型+证件号码3个字段信息都相同的人员
	 * 
	 * @param bean
	 * @return
	 */
	public long querySameParamPerson(String userName, String cardNo, String cardType);

	/**
	 * 获取当前批次
	 * 
	 * @return
	 */
	String querySeqUploadNextval();

	/**
	 * 查询当前违规情况
	 * 
	 * @return
	 */
	List<BlackResultAliasDTO> queryBlackResultAlias();
	
	/**
	 * 获得当前时间和流水
	 * @return
	 */
	public List<Map<String, Object>> getCurrentSwiftNumber();

	public void updateCurrentSwiftNumber(Map<String, Object> paraMap);
}
